package com.intct.hbase.ddl;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * @author gufg
 * @since 2025-09-28 16:29
 * 创建命名空间
 */
public class CreateNamespace {
    public static void main(String[] args) throws IOException {
        // 创建连接
        Connection connection = ConnectionFactory.createConnection();

        // Namespace名称
        String namespace = "intct85_api";

        // 创建Namespace
        // create_namespace 'namespace'
        // admin实例是执行DDL操作
        // table实例执行DML操作
        Admin admin = connection.getAdmin();

        List<String> namespaces = Arrays.asList(admin.listNamespaces());

        // 如命名空间名称不存在时，创建命名空间
        if (!namespaces.contains(namespace)) {
            NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);
            // 增加属性key和value
            builder.addConfiguration("intct", "85");

            admin.createNamespace(builder.build());
        } else {
            System.out.println("命名空间已经存在！");
        }

        // 关闭
        admin.close();
        connection.close();
    }
}
